Лабораторная работа 8: Социальная сеть с графами

Цель 🎯

  • Модель: Простая социальная сеть.
    • Пользователи представлены как вершины в графе.
    • Дружба представлена как ненаправленные рёбра.
  • Задача: Обработать последовательность команд для построения и запросов к сети.

Представление 💾

Мы будем использовать список смежности для хранения графа.

Это массив списков. Список под индексом `i` содержит всех друзей пользователя `i`.

// Дружбы: (0,1), (0,2), (1,2)
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[],
]

Операции ⚙️

Вам нужно реализовать четыре команды:

  • add u v

    Добавить дружбу.

  • degree u

    Подсчитать количество друзей пользователя u.

  • isfriend u v

    Проверить, являются ли u и v друзьями.

  • count_greater x

    Подсчитать пользователей, у которых более x друзей.